Allow inserting newlines in css strings
authorMatthias Clasen <mclasen@redhat.com>
Sat, 3 Oct 2020 02:31:29 +0000 (22:31 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 3 Oct 2020 03:40:16 +0000 (23:40 -0400)
Rename _gtk_css_print_string to strip the _ and add
an insert_newlines argument to it. Update all callers,
and make the render node serializer insert newlines.

gsk/gskrendernodeparser.c
gtk/css/gtkcssserializer.c
gtk/css/gtkcssserializerprivate.h
gtk/gtkcssimageicontheme.c
gtk/gtkcssstringvalue.c

index 06d1bdb4d250fabbbe656ddb8b244156d59b1cbf..c07b749bf6f30271ca763a9570f995c57409ad3d 100644 (file)
@@ -2126,7 +2126,7 @@ append_string_param (Printer    *p,
 {
   _indent (p);
   g_string_append_printf (p->str, "%s: ", param_name);
-  _gtk_css_print_string (p->str, value);
+  gtk_css_print_string (p->str, value, TRUE);
   g_string_append_c (p->str, ';');
   g_string_append_c (p->str, '\n');
 }
index 838a7fb3f4e129900c8e1ad69131f5ae53803293..d939f38cb64a42f5da261d3077d0985907c4bbf2 100644 (file)
@@ -23,8 +23,9 @@
  * as a css string again.
  */
 void
-_gtk_css_print_string (GString    *str,
-                       const char *string)
+gtk_css_print_string (GString    *str,
+                      const char *string,
+                      gboolean    multiline)
 {
   gsize len;
 
@@ -42,7 +43,10 @@ _gtk_css_print_string (GString    *str,
       case '\0':
         goto out;
       case '\n':
-        g_string_append (str, "\\A ");
+        if (multiline)
+          g_string_append (str, "\\A\\\n");
+        else
+          g_string_append (str, "\\A ");
         break;
       case '\r':
         g_string_append (str, "\\D ");
index 2d1a16949fabc058608b1ee25b35c3df41c67804..86f9934faa71ea06bdc70ac7ec38fb6ddb9a5864 100644 (file)
@@ -25,8 +25,9 @@
 
 G_BEGIN_DECLS
 
-void _gtk_css_print_string (GString    *str,
-                            const char *string);
+void gtk_css_print_string (GString    *str,
+                           const char *string,
+                           gboolean    multiline);
 
 G_END_DECLS
 
index debde7ee00739f1b282c3a33cc530076a8dbbb06..109b0abd832fc19d727f23fef66d8ca8c36bd627 100644 (file)
@@ -133,7 +133,7 @@ gtk_css_image_icon_theme_print (GtkCssImage *image,
   GtkCssImageIconTheme *icon_theme = GTK_CSS_IMAGE_ICON_THEME (image);
 
   g_string_append (string, "-gtk-icontheme(");
-  _gtk_css_print_string (string, icon_theme->name);
+  gtk_css_print_string (string, icon_theme->name, FALSE);
   g_string_append (string, ")");
 }
 
index 269a86e717fa42873d9bcf72257fee5262452ae6..b72427de113a79d553f9e505baf37e29eb46c999 100644 (file)
@@ -70,7 +70,7 @@ gtk_css_value_string_print (const GtkCssValue *value,
       return;
     }
 
-  _gtk_css_print_string (str, value->string);
+  gtk_css_print_string (str, value->string, FALSE);
 }
 
 static void